.TH wavemon 1 "September 2021" Linux "User Manuals"
.SH NAME
wavemon \- a wireless network monitor
.SH SYNOPSIS
.B wavemon [-h] [-i
.I ifname
.B ] [-g] [-v]
.SH DESCRIPTION
\fIwavemon\fR is a ncurses-based monitoring application for wireless network
devices. It plots levels in real-time as well as showing wireless and network
related device information.

The \fIwavemon\fR interface splits into different "screens".
Each screen presents information in a specific manner. For example, the
"info" screen shows current levels as bargraphs, whereas the "level" screen
represents the same levels as a moving histogram.

On startup, you'll see (depending on configuration) one of the different monitor
screens. At the bottom, you'll find a \fImenu-bar\fR listing the screens and
their activating keys. Each screen is activated by either the corresponding
function key (F1..10), its numeric shortcut (1..0), or the underlined shortcut
letter of the screen name.  The following \fIscreens\fR can be selected:
.TP
.B Info (F1 or 'i')
This is the most comprehensive screen. It displays a condensed overview of
wireless-specific parameters and network statistics, as well as bar graphs.
The layout is arranged into several sub-sections.

The
.B Interface
section at the top shows information about the monitoring interface,
including interface name, type, ESSID, and available encryption formats.

Below, in the
.B Levels
section, you can see up to four bargraphs showing (1) relative signal quality
and (2) signal level in dBm. If the wireless driver also supports noise level
information, additionally (3) noise level in dBm and (4) Signal-Noise-Ratio
(SNR) in dB are shown.  The colour of the signal level bargraph changes
from red to yellow and green at fixed levels. If thresholds have been set,
two arrows on the signal level graph will show the positions of the current
thresholds.

The
.B Statistics
section displays packet and byte counters and a few other packet-related
statistics.

The subsequent
.B Info
subsection lists the current operational mode and configuration of the
wireless interface. What parameters are actually shown depends on the
capabilities and selected mode of your network device.

Lastly, the
.B Network
section shows network-level parameters. The MAC-address is resolved from
\fBethers\fR(5). The IPv4 address is shown in CIDR notation (RFC\ 4632
\fIaddress\fR\fB/\fR\fIprefix_len\fR format). Since often those two values
also determine the broadcast address (last 32 \- \fIprefix_len\fR bits set
to 1), that address is shown only if it does not derive from the interface
address and prefix length. Likewise, the interface MTU is shown only if it
differs from the default Ethernet MTU of 1500 bytes.
.TP
.B Level histogram (F2 or 'l')
This is a full-screen histogram plot showing the evolution of the signal
level over time.
The screen is partitioned into a grid, with dBm levels shown in green at
the right hand side.
.TP
.B Scan window (F3 or 's')
A periodically updated network scan, showing access points and other
wireless clients. It is sorted depending on \fIsort_order\fR and \fIsort_ascending\fR, see \fBwavemonrc\fR(5).
Each entry starts with the ESSID, followed by the colour-coded MAC
address and the signal/channel information. A green/red MAC address indicates
an (un-)encrypted access point, the colour changes to yellow for non-access
points (in this case the mode is shown at the end of the line). The
uncoloured information following the MAC address lists relative and
absolute signal strengths, channel, frequency, and station-specific information.
The station-specific information includes the station type (ESS for Access Point,
IBSS for Ad-Hoc network), station count and channel utilisation.

A status line at the bottom informs about the current sort order and a few
statistics, such as most (least) crowded channels (least crowded channels
are listed when sorting by descending channel).

The \fIsort_order\fR can also directly be changed via these keyboard shortcuts:
\fIa\fRscending, \fId\fRescending; by \fIe\fRssid, \fIs\fRignal, \fIc\fRhannel (\fIC\fR also with signal),
\fIm\fRac address, or by \fIo\fRpen access (\fIO\fR also with signal).

Please note that sorting order changes at the time new data comes in,
not when the setting is activated.

You can \fIfilter\fR the bands via these keyboard shortcuts: \fI2\fR (2.4GHz only),
\fI5\fR (5GHz only), and \fIb\fR (both bands). Hidden ESSIDs can be excluded from
display via the \fIh\fR shortcut.

.TP
.B Preferences (F7 or 'p')
This screen allows you to change all program options such as interface and
level scale parameters, and to save the new settings to the configuration
file. Select a parameter with <up> and <down>, then change the value with
<left> and <right>. Please refer to \fBwavemonrc\fR(5) for an in-depth
description of applicable settings.
.TP
.B Help (F8 or 'h')
This page might show an online-help.
.TP
.B About (F9 or 'a')
Release information and contact URLs.
.TP
\fBQuit (F10 or 'q')
Exit \fIwavemon\fR.
.LP

.SH "OPTIONS"
.IP "\fB\-i \fIinterface\fR\fR"
override autodetection and use the specified \fIinterface\fR.
.IP "\fB\-g\fR"
check screen \fIgeometry\fR: a minimum size is required for proper display; this flag
adds a check to ensure it is sufficiently large. Enable this if window does not display
properly.
.IP "\fB\-h\fR"
print help and exit.
.IP "\fB\-v\fR"
print version information and exit.
.SH Troubleshooting
.IP \(bu
\fIwavemon\fR will exit with \fB'no supported wireless interfaces found'\fR if no usable wireless interfaces
were detected. Check if your wireless interface is otherwise usable, using e.g. \fBiw\fR(8).
If your interface is not listed, causes can be a missing (or not loaded) kernel module; or missing firmware,
which some cards need to operate.

.IP \(bu
Some operations, such as displaying encryption information or performing scans, require
\fBCAP_NET_ADMIN\fR privileges (see \fBcapabilities\fR(7)). For non-root users, these can be
enabled by installing \fIwavemon\fR setuid-root.

.IP \(bu
Running \fIwavemon\fR inside \fBscreen\fR(1) may cause garbled output on certain locales.
This can be fixed calling screen like this:
.EX
$ LC_ALL=C screen
.EE
.SH FILES
.IP $XDG_CONFIG_HOME/wavemon/wavemonrc
The local per-user configuration file.
.SH "AUTHOR"
Written by Jan Morgenstern <jan@jm-music.de>.
.SH "REPORTING BUGS"
Open an issue on \fIhttps://github.com/uoaerg/wavemon/issues\fR.
.SH "SEE ALSO"
.BR wavemonrc (5),
.BR ethers (5),
.BR capabilities (7),
.BR iw (8),
.BR locale (1)
